Traditionally, testing or validating integrated circuits has included functional testing. Functional testing generally involves providing various inputs to the integrated circuit (or part thereof) and testing whether the outputs of the integrated circuit are correct or as expected. Often part of that functional testing has involved “logical coverage”, which assures that the suite of functional tests causes the integrated circuit to perform a full or major portion of the possible combinations of actions or operations possible. In general, the higher the amount of coverage the more thoroughly the integrated circuit is considered to have been tested.
Traditionally, logical coverage has typically been the domain of pre-silicon analysis. That is to say, the ability of circuit simulation to view and analyze all or most parts of a circuit design makes coverage analysis rather straightforward. Therefore, logical coverage has traditionally occurred prior to the actual manufacture of the integrated circuit.
Unfortunately, the lack of visibility into the inner workings of the integrated circuit and the lack of compute power to analyze actual field use cases make post-silicon testing and coverage difficult. Post-silicon processes allow multiple orders of increased magnitude of operational testing, but lack the ability to look inside of the product at key transactions or units to assess whether they are adequately stimulated. As a result, post-silicon validation is typically performed with little to no ability to assess the coverage of the tests that are being applied.